home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group02b.txt / 000150_icon-group-sender_Fri Dec 6 16:53:09 2002.msg < prev    next >
Internet Message Format  |  2003-01-02  |  2KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id gB6NpLE09375
  4.     for icon-group-addresses; Fri, 6 Dec 2002 16:51:21 -0700 (MST)
  5. Message-Id: <200212062351.gB6NpLE09375@baskerville.CS.Arizona.EDU>
  6. From: "Frank J. Lhota" <NOSPAM.lhota.adarose@verizon.net>
  7. X-Newsgroups: comp.lang.icon
  8. Subject: Re: Icon compiler
  9. X-Priority: 3
  10. X-MSMail-Priority: Normal
  11. X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
  12. X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
  13. Date: Fri, 06 Dec 2002 19:25:37 GMT
  14. X-Complaints-To: abuse@verizon.net
  15. To: icon-group@cs.arizona.edu
  16. Errors-To: icon-group-errors@cs.arizona.edu
  17. Status: RO
  18.  
  19. The Icon native code compiler is still distributed, but no longer supported.
  20. I experimented with making the Icon-to-C compiler work in my recent Cygwin
  21. port, and I discovered that the code needed a lot of tweaking.
  22.  
  23. The Icon-to-C (iconc) compiler can produce very fast programs. I recall once
  24. using it on the Icon versions of uuencode / uudecode ("iiencode.icn" and
  25. "iidecode.icn" in the IPL) and ran some timing checks. The iconc versions of
  26. iiencode / iidecode were over 3 times as fast as the interpreted (icont /
  27. iconx) versions. More surprisingly, I found that the iconc programs were
  28. actually faster than native C uuencode / uudecode programs that I was using
  29. at the time!
  30.  
  31. The down side is that the iconc compiler itself is sluggish and a real
  32. memory hog. Because of the type inference engine, iconc cannot perform
  33. separate compilation. My experience is that iconc is bound to fail for
  34. programs beyond a certain size. Also, for iconc debug support is optional,
  35. and a performance drag. I would not recommend compiling a program with iconc
  36. until it has been thoroughly tested and debugged.
  37.  
  38. Also, some more recent features such as multi-threading is simply not
  39. supported (and not really supportable) by iconc.
  40.  
  41. The iconc compiler has to interface with the local C compiler, which creates
  42. a real maintenance headache. It is therefore not surprising that the Icon
  43. Project decided to drop support for iconc.
  44.  
  45.  
  46.